package com.campus.help.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 劳务服务实体类
 *
 * @author campus-help
 * @since 2025-09-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("labor")
public class Labor extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 工作标题
     */
    @TableField("job_title")
    private String jobTitle;

    /**
     * 劳务类型ID
     */
    @TableField("type_id")
    private Long typeId;

    /**
     * 工作地点
     */
    @TableField("location")
    private String location;

    /**
     * 工作类型（one-off：一次性，part-time：兼职，full-time：全职）
     */
    @TableField("work_type")
    private String workType;

    /**
     * 薪资
     */
    @TableField("salary")
    private BigDecimal salary;

    /**
     * 工作描述
     */
    @TableField("description")
    private String description;

    /**
     * 任职要求
     */
    @TableField("requirements")
    private String requirements;

    /**
     * 发布者ID
     */
    @TableField("publisher_id")
    private Long publisherId;

    /**
     * 发布人类型（student：学生，merchant：商户）
     */
    @TableField("publisher_type")
    private String publisherType;

    /**
     * 商户ID（如果是商户发布）
     */
    @TableField("merchant_id")
    private Long merchantId;

    /**
     * 学校ID
     */
    @TableField("school_id")
    private Long schoolId;

    private String qq;
    private String phone;
    private String wechat;

    /**
     * 状态（recruiting：招聘中，closed：已关闭，completed：已完成）
     */
    @TableField("status")
    private String status;

    /**
     * 是否紧急（0：否，1：是）
     */
    @TableField("urgent")
    private Integer urgent;

    /**
     * 浏览次数
     */
    @TableField("view_count")
    private Integer viewCount;

    /**
     * 申请次数
     */
    @TableField("apply_count")
    private Integer applyCount;

    /**
     * 需要人数
     */
    @TableField("required_count")
    private Integer requiredCount;

    /**
     * 工作相关图片（JSON数组格式存储）
     */
    @TableField("images")
    private String images;

    /**
     * 已接受申请数
     */
    @TableField("accepted_count")
    private Integer acceptedCount;

    /*--------------------------不存在的字段-------------------------------*/
    /**
     * 发布者
     */
    @TableField(exist = false)
    private String publisher;
    /**
     * 当前申请人数
     */
    @TableField(exist = false)
    private Long applicationCount;

    /**
     * 劳务类型
     */
    @TableField(exist = false)
    private String typeName;
}
